#include <iostream>
#include <sstream>
#include <string>
#include <memory>
#include <jsoncpp/json/json.h>
//g++ jsonSerialize.cc  -o jsonSerialize -ljsoncpp -std=c++11 
int main()
{
    //结构化数据 -- json数据 -- 字符串数据
    const char *name = "小明 ";
    int age = 18;
    float score[] = {77.5, 88, 93.6};

    //1.将所有的数据保存在Json::Value对象中
    Json::Value root;
    root["姓名"] = name;
    root["年龄"] = age;
    root["成绩"].append(score[0]);
    root["成绩"].append(score[1]);
    root["成绩"].append(score[2]);

    //2. 将json对象序列化成字符串
    Json::StreamWriterBuilder swb;
    std::unique_ptr<Json::StreamWriter> swPtr(swb.newStreamWriter());

    std::stringstream ss;
    //virtual int Json::StreamWriter::write(const Json::Value &root, std::ostream *sout)
    //按照子类中的配置将值写入文档 json对象写到ss-buffer
    swPtr->write(root, &ss); 
    std::cout << ss.str() << std::endl;
    return 0;
}
